上传图片

上传图片so easy,只需要两步就OK了。第一步XML中声明,第二步上传。

第一步,设备上传图片需要在XML中的data(也就是上传数据声明)部分定义。如:我们想上传格式为jpg的图片,并且我们想在swaylink想看到最新的图片。那么只需这样简单的定义。我们在XML中data部分声明id为2部分声明。示例如下:

<dev>
    <dev_id>demo00</dev_id>
    <name>sway-test</name>
    <model>Model-I</model>
    <maker>sway</maker>
    <timezone>8</timezone>
    <longitude>104.04124</longitude>
    <latitude>39.904214</latitude>
    <height>30</height>
    <keep_online>0</keep_online>
    <data>
        <id>2</id>                   
        <name>风景</name>                
        <remark>窗外的风景</remark>      
        <unit>sys/file-image</unit>            
        <storage>latest</storage>                    
    </data>
</dev>

其中,

  • name 参数的名字;
  • remark 描述信息;
  • unit 参数的单位,unit为sys/file-image时,表示参数以图片的格式显示;
  • storage 存储方式,storage为latest表示仅保存最新值,也就说我们在swaylink上只会显示最新的图片。

Notice:如果之前已经上传过XML文件,现在修改了XML文件,需要重新上传才能生效哦!

第二步,上传图片就是把图片以二进制的方式读出来,然后通过post的方式访问我们的接口按照我们约定的格式传过来就可以了啦。接口说明如下:

请求地址 http://www.mydehui.com/swaylink.php?m=Queen&c=Upload&a=file**

POST 数据格式 v=2.0&dev_id=xx&token=xx&encrypt=AES128&zip=gzip&load=json_str 其中json_str格式如下

[{"data":[{"id":2,"v":["eHh4eA=="],"t":[1469693723],"size":4,"f":" mutao"}],"dev_id":"mutao1"}]
//也就是下面这个格式
[
    {
        "data": [
            {
                "id": 2,       //xml中定义的data部分声明的id
                "v": [
                    "eHh4eA==" //base64压缩后的图片内容
                ],
                "t": [
                    1469693723 //上传的时间戳
                ],
                "size": 4,     //图片压缩前的大小
                "f": "mutao"   //图片希望在系统之保留的名字
            }
        ],
        "dev_id": "demo00"     //swaylink官网申请的设备号dev_id
    }
]

下一面上传图片的PHP示例代码。

//只需在项目中引入phpsdk,修改autoload.php中的设备号和图片路径,就这么简单
require './SLink/SLinkClient.class.php';         
$SLinkClient = new \Slink\SLinkClient('demo00'); //设备号
$SLinkClient->uploadFile('test.jpg');            //只需要图片所在路径

下面是刚刚上传的一处风景图片在swaylink平台上的效果

results matching ""

    No results matching ""